package com.zatech.cgnci.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zatech.cgnci.project.dto.*;
import com.zatech.cgnci.project.entity.CgnciBusinessInsuranceDO;
import com.zatech.cgnci.project.entity.CgnciReinsurancePremiumBillDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zatech.cgnci.project.vo.*;

/**
 * <p>
 * 临分保费账单信息 服务类
 * </p>
 *
 * @author Generator
 * @since 2025-01-13
 */
public interface CgnciReinsurancePremiumBillService extends IService<CgnciReinsurancePremiumBillDO> {

    IPage<ReinsurancePremiumBillVO> pageQuery(ReinsurancePremiumBillDTO queryDTO);
    /**
     * 临分摊赔账单信息新增接口
     * @param addDTO
     */
    void addContractInvoice(ReinsurancePremiumBillAddDTO addDTO);

    ReinsurancePremiumBillDetailsVO getDetails(Long id);

    /**
     * 合约账单更新UPM接口
     * @param updateDTO
     */
    void updateUpm(ContractInvoiceUpmUpDTO updateDTO);

    /**
     * 根据id删除合约账单
     * @param updateDTO
     */
    void delete(Long id,String invoiceNumber);

    void generateDisengagement(Long insuranceId);

    /**
     * 根据保单号查询账单状态
     * @param policyNumber
     * @return
     */
    CgnciBillStatusVO queryBillStatus(String policyNumber);

    CgnciBillMainVO getPolicyInfo(String policyNumber);

    Boolean verifyPremium(String policyNo);

    String queryPremium(String policyNo);
}
